package com.zw.mes.module.transpositionManager.mapper;

import com.zw.mes.entity.sys.Dept;
import com.zw.mes.module.prodtaskmanager.entity.ProdOrd;
import com.zw.mes.module.prodtaskmanager.entity.ProdPla;
import com.zw.mes.module.prodtaskmanager.entity.ProdPlaRet;
import com.zw.mes.module.transpositionManager.model.FlowRouteModel;
import com.zw.mes.module.transpositionManager.model.FlowSheetModel;
import com.zw.mes.module.transpositionManager.model.FlowTransModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @className: TranspositionCutMapper
 * @description: 生产转序下料维护持久层
 * @author： 徐一贺 18341916590
 * @date： 2021/4/16 16:49
 * @office: 智能控制设计科
 * @research institute： 智能控制设计所
 * @department： 机械设计院
 * @company: 辽宁忠旺机械设备制造有限公司
 * @group： 忠旺集团
 * @version: 1.0
 */
@Repository
public interface TranspositionCutMapper {
    /**
     * @methodName: findCutListByParam
     * @description: 根据搜索条件获取下料维护页列表
     * @param: param 搜索条件
     * @return： java.util.List<com.zw.mes.module.transpositionManager.model.FlowSheetModel>
     * @exception： 已捕获
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/17 8:11
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<FlowSheetModel> findCutListByParam(FlowSheetModel param);

    /**
     * @methodName: findFlowSheetModelListByIdStr
     * @description: 根据idStr获取对应的制作件清单列表
     * @param: idStr id们
     * @return： java.util.List<com.zw.mes.module.transpositionManager.model.FlowSheetModel>
     * @exception： 已捕获
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/17 8:57
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<FlowSheetModel> findFlowSheetModelListByIdParam(FlowSheetModel param);

    /**
     * @methodName: updateFlowSheetModelCutStatus
     * @description: 根据主键更新下料状态
     * @param: flowSheetModel 主键和状态
     * @return： java.lang.Integer 成功条数
     * @exception： 已捕获
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/17 9:41
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateFlowSheetModelCutStatus(FlowSheetModel flowSheetModel);



    /**
     * @methodName: findFlowRouteModelByCondition
     * @description: 根据条件获取原料路线列表
     * @param: condition
     * @return： java.util.List<com.zw.mes.module.transpositionManager.model.FlowRouteModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/21 9:32
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<FlowRouteModel> findFlowRouteModelByCondition(FlowRouteModel condition);

    /**
     * @methodName: updateFlowRouteByPrimaryKey
     * @description: 根据主键选择性更新
     * @param: route
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/21 9:38
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateFlowRouteByPrimaryKey(FlowRouteModel route);

    /**
     * @methodName: insertTrans
     * @description: 插入转序单表数据
     * @param: trans
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/21 9:46
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer insertTrans(FlowTransModel trans);

    /**
     * @methodName: findCutFlowSheetModelList
     * @description: 根据专业部分获取对应部分的下料
     * @param: flowSheetModel
     * @return： java.util.List<com.zw.mes.module.transpositionManager.model.FlowSheetModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/5/10 13:08
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<FlowSheetModel> findCutFlowSheetModelList(FlowSheetModel flowSheetModel);

    /**
     * @methodName: getFlowSheetModelByParamsGroupByParams
     * @description: 按照参数获取按照参数分组查询到的数据
     * @param: model
     * @return： com.zw.mes.module.transpositionManager.model.FlowSheetModel
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/5/11 13:14
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    FlowSheetModel getFlowSheetModelByParamsGroupByParams(FlowSheetModel model);
    /**
     * @methodName: getDeptByPrimaryKey
     * @description: 根据主键获取部门
     * @param: deptId
     * @return： com.zw.mes.entity.sys.Dept
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/5/13 10:10
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Dept getDeptByPrimaryKey(Integer deptId);
    /**
     * @methodName: getProdPlaByProdNo
     * @description: 根据生产令编号获取总调计划
     * @param: prodNo 生产令编号
     * @return： com.zw.mes.module.prodtaskmanager.entity.ProdPla
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/6/2 14:11
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    ProdPla getProdPlaByProdNo(@Param("prodNo") String prodNo);
    /**
     * @methodName: getProdPlaRetByPrprIdAndPrprCod
     * @description: 根据总调计划主键和计划反馈码获取反馈信息
     * @param: prodPlaRet
     * @return： com.zw.mes.module.prodtaskmanager.entity.ProdPlaRet
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/6/2 14:16
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    ProdPlaRet getProdPlaRetByPrprIdAndPrprCod(ProdPlaRet prodPlaRet);
    /**
     * @methodName: getProdPlaRetByParam
     * @description: 根据参数获取反馈信息
     * @param: prodPlaRetParam
     * @return： com.zw.mes.module.prodtaskmanager.entity.ProdPlaRet
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/6/2 15:13
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    ProdPlaRet getProdPlaRetByParam(ProdPlaRet prodPlaRetParam);
    /**
     * @methodName: getProdOrdByProdNo
     * @description: 根据生产令获取生产令实体
     * @param: prodNo
     * @return： com.zw.mes.module.prodtaskmanager.entity.ProdOrd
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/6/2 15:24
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    ProdOrd getProdOrdByProdNo(String prodNo);

    /** prod_cod_sta 0=未开始 1=已完成 2=执行中
     * updateProdOrdProdCodStaByPrimaryKeyAndNotStarted 根据主键更新生产令表prod_ord生产完成状态从未开始0变成执行中2
     * @param changeProdCodSta 载体
     * @return 更新行数
     */
    int updateProdOrdProdCodStaByPrimaryKeyAndNotStarted(ProdOrd changeProdCodSta);

    int selectCutMaintainCount();
}
